Computer use is becoming increasingly decoupled from any particular computing device. Users may view their computing experience as defined more by access to data and available software applications than by the type of computer they are using. A user can write a report on a desktop computer at work, check e-mail on a smart phone, and complete the report at home using a notebook computer. In this scenario, access to an e-mail account and the ability to work on the report may be more important to the user than the particular device used.
Computing devices are also becoming increasingly shared rather than used exclusively by a single user. Instead of having a stand-alone desktop computer, a user may work on a terminal that is little more than a monitor and a keyboard with a connection to a central server or other shared computing device. In these types of shared resource scenarios the central server may simultaneously support multiple users. Thus, a single user may work on multiple machines and a single machine may support multiple users.
One way for a user to interact with many different computing devices is by establishing a Remote Desktop session with another computing device. By remotely accessing one computer (e.g., a desktop computer at work) from another computer (e.g., the notebook computer at home) the user can continue with the computing experience begun on the desktop computer. However, Remote Desktop sessions require that both computers are running and that both computers are connected to the same network (e.g., the Internet). Remote Desktop sessions cannot preserve the state of a computer system through reboots of the computer. Remote Desktop sessions also do not allow people to be isolated from each other on the computer so multiple users cannot simultaneously share the processing power and memory of a single computer.
In another context, multiple users are able to share a single hardware host with a hypervisor, also called a virtual machine manager. A hypervisor may be used to share a host computer's processor, memory, and other resources amongst multiple users such as users on terminal devices or thin clients. However, maintaining multiple guest operating systems (called virtual machines) can consume significant amounts of processor and memory resources. The hypervisor itself may be a very large software file making it unwieldy to transfer between computing devices. Also, since hypervisors typically introduce another layer between the hardware and the user-interface layer, hypervisors may take a long time to load at system startup.
The shift away from a one-to-one correspondence between user and computer is not adequately addressed by these and other prior techniques for managing computing experiences.